package com.example.demo.component;

import com.example.demo.common.ArticleTimeUtil;
import com.example.demo.entity.Time;
import org.springframework.stereotype.Component;

import java.time.*;
import java.util.concurrent.*;

/**
 * Created with IntelliJ IDEA.
 * Description: 线程池练习
 */
@Component
public class ThreadPoolExecutorTest {
    // 定义线程池
    private static final ScheduledExecutorService executors
            = Executors.newScheduledThreadPool(3);

    // 向线程池中传任务
    public void put(Runnable runnable, Time time) {
        Duration duration = ArticleTimeUtil.getTime(time);
        // 通过线程池的 schedule 方法设置定时任务
        // 第一个参数是 具体任务内容
        // 第二个参数是 多长时间以后执行任务
        // 第三个参数是 声明第二个参数的时间单位
        executors.schedule(runnable, duration.toMillis() / 1000, TimeUnit.SECONDS);
    }
}
